package 基础语法;

public class 接口 extends 继承 implements Inner接口, Inner接口1, Inner接口2 {// 对于接口中重名的方法，实现一个即可
    public static void main(String[] args) {
        接口 j = new 接口();
        j.jj();
        j.ss();//
        j.ahui(j);

        Inner接口.tt();

    }
    void ahui(Inner接口2 s){
        s.ss();
    }

    @Override
    public void jj() {//
        super.jjq();// 继承这个类的方法和 接口重名，会报错
       
    }

    @Override
    public void dd3() {// 必须实现这仨
        // TODO Auto-generated method stub
        throw new UnsupportedOperationException("Unimplemented method 'dd3'");
    }

    @Override
    public void dd2() {
        // TODO Auto-generated method stub
        throw new UnsupportedOperationException("Unimplemented method 'dd2'");
    }

    @Override
    public void dd() {
        // TODO Auto-generated method stub
        throw new UnsupportedOperationException("Unimplemented method 'dd'");
    }
    @Override public void ss(){ System.out.println("sssssssss"); }


}
/*可以先编译，再反编译，看一下真实的接口的代码是怎么样的*/

interface Inner接口 {
    int a = 10;// 默认是public static final修饰

    void jj();// 默认有一个abstract修饰

    void dd();

    default void ss() {// jdk8,9之后
        nn();
        dsd();
        System.out.println("AAAAAAAAAAAAAAAAAAsSSSSSSSSSSSSSSSSs");
    }
    static void tt(){//jdk8,不能被重写
        dsd();
        //nn();不行
        System.out.println("asasas");
    }
    private static void dsd(){System.out.println("mmmm");};
    private void nn(){//jdk9以后 
        dsd();
        System.out.println("aasqwjdoiqwjd");
    }

}

interface Inner接口1 {
    int a = 10;// 默认是public static final修饰

    abstract void jj();

    void dd2();

    default void ss() {// jdk8,9之后
        System.out.println("AAAAAAAAAAAAAAAAAAA");
    }

}

interface Inner接口2 extends Inner接口, Inner接口1 {// 可以多继承
    void dd3();

    @Override
    default void ss() {// 必须重写
        // TODO Auto-generated method stub
        //throw new UnsupportedOperationException("Unimplemented method 'ss'");
        System.out.println("asassasasas");
    }

}